#pragma once

typedef int (*GetKey)(int num);

inline int keyIsNum(int num) { return num; }

extern void insertionSort(int* array, int len);
extern void mergeSort(int* array, int beg, int len);
extern void quickSort(int* array, int beg, int end);
extern void countingSort(int* array, int len, int max, int beg = 0, GetKey getKey = keyIsNum);
extern void radixSort(int* array, int len);